package tools

import (
	"bufio"
	"fmt"
	"io"
	"net"
	"os"
)

func (t Command) Client() {
	if len(os.Args) != 5 {
		fmt.Println("使用方法: yt client ip port <文件名>")
		return
	}
	ip := os.Args[2]
	port := os.Args[3]
	fileName := os.Args[4]

	// 连接服务端
	conn, err := net.Dial("tcp", ip+":"+port)
	if err != nil {
		fmt.Println("连接服务端错误:", err)
		return
	}
	defer conn.Close()

	// 发送文件名
	writer := bufio.NewWriter(conn)
	_, err = writer.WriteString(fileName + "\n")
	if err != nil {
		fmt.Println("发送文件名错误:", err)
		return
	}
	err = writer.Flush()
	if err != nil {
		fmt.Println("刷新缓冲区错误:", err)
		return
	}

	// 打开要发送的文件
	file, err := os.Open(fileName)
	if err != nil {
		fmt.Println("打开文件错误:", err)
		return
	}
	defer file.Close()

	// 从文件读取数据并发送到服务端
	_, err = io.Copy(conn, file)
	if err != nil {
		fmt.Println("发送文件错误:", err)
		return
	}

	fmt.Println("文件发送完成")
}
